(*REQUIRES: 输入任意一个整数列表*)
(*ENSURES: 输出为输入列表的升序排列*)
fun quickSort([]) = []  (* 空列表则直接返回空列表 *)
  | quickSort(x::xs) = 
    let
      fun partition([], left, right) = (left, right)
        | partition(y::ys, left, right) =
          if y <= x then
            partition(ys, y::left, right)  (* 当前元素小于等于 x，放入 left *)
          else
            partition(ys, left, y::right)  (* 当前元素大于 x，放入 right *)
    in
      let
        val (left, right) = partition(xs, [], [])  (* 调用 partition 函数分区 *)
      in
        quickSort(left) @ [x] @ quickSort(right)  (* quickSort排序，连接结果 *)
      end
    end;